wayland: ensure gdk_device_manager_get_client_pointer() returns a master pointer
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 13 Aug 2014 19:16:39 +0000 (21:16 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Tue, 26 Aug 2014 12:46:13 +0000 (14:46 +0200)
The internal ordering of devices isn't quite guaranteed, so ensure we're returning
the right one.

https://bugzilla.gnome.org/show_bug.cgi?id=697855

gdk/wayland/gdkdevice-wayland.c

index 2ff888c015882358740e06012cf86468855eb386..5fd63410b449e6a87acc5cea4f5413e6026d01ff 100644 (file)
@@ -1791,12 +1791,13 @@ gdk_wayland_device_manager_get_client_pointer (GdkDeviceManager *device_manager)
 
   wayland_device_manager = (GdkWaylandDeviceManager *) device_manager;
 
-  /* Find the first pointer device */
+  /* Find the first master pointer device */
   for (l = wayland_device_manager->devices; l != NULL; l = l->next)
     {
       GdkDevice *device = l->data;
 
-      if (gdk_device_get_source (device) == GDK_SOURCE_MOUSE)
+      if (gdk_device_get_source (device) == GDK_SOURCE_MOUSE &&
+          gdk_device_get_device_type (device) == GDK_DEVICE_TYPE_MASTER)
         return device;
     }